package com.it.exception;

/**
 * 目标：掌握自定义异常，以及异常的作用
 */
public class Test2 {
    public static void main(String[] args) {
//        try {
//            saveAge(160);
//            System.out.println("底层执行成功");
//        } catch (Exception e) {
//            e.printStackTrace();
//            System.out.println("底层出现bug");
//        }
        try {
            saveAge2(23);
            System.out.println("saveAge2底层执行成功");
        } catch (AgeIllegalException e) {
            e.printStackTrace();
            System.out.println("saveAge2底层出现bug");
        }
    }

    // 运行时异常
    public static void saveAge2(int age) throws AgeIllegalException{
        if (age > 0 && age < 150) {
            System.out.println("年龄被成功保存：" + age);
        } else {
            // 用一个异常对象封装这个问题
            // throw 抛出去这个异常对象
            // throws 用在方法上，抛出方法内部的异常
            throw new AgeIllegalException("/age is illegal,your age is" + age);
        }
    }

    // 编译时异常
    public static void saveAge(int age) {
        if (age > 0 && age < 150) {
            System.out.println("年龄被成功保存：" + age);
        } else {
            // 用一个异常对象封装这个问题
            // throw 抛出去这个异常对象
            throw new AgeIllegalRuntimeException("/age is illegal,your age is" + age);
        }
    }
}
